package Counter;

/**
 *
 */
public class OpPower extends Operator {
    public Integer compute(int num1, int num2) {
        int a = num1;
        int b = num2;
        if (b == 0) {
            num1 = 1;
            // 任何数的0次幂都是1
        } else if (b == 1) {
            return num1;
        } else {
            for (b = 2; b <= a; b++) {
                num1 = num1 * a;
            }
        }

        return num1;


    }

//        return   Math.pow(num1,num2)   //系统自带求幂


    private Integer power(int num1, int num2) {

        if (num2 == 0) {
            return 1;
        } else {
            return num1 * power(num1, num2 - 1);
        }
    }


    // }
    // 在一个方法中调用自己 叫做 递归
    // 递归的好处  当我们把条件想清楚了之后
    // 不需要额外的编程思想 直接翻译成代码
    // 所有的递归 都可以用迭代(循环)来实现
    // 并且 普通递归 效率低下

}